import cv2 as cv
import numpy as np

# -------------------------开运算和闭运算-----------------
# 开运算：先腐蚀再膨胀，去除小的杂点，使得图像中的细节得到保留。
# 闭运算：先膨胀再腐蚀，填充图像中的孔洞，使得图像变为完整的。

# 1.开运算
img = cv.imread('words.jpeg', 0)
# 定义核函数
kernel = np.ones((3, 3),np.uint8) #核结构越小，去除的是小噪声

cvopen = cv.morphologyEx(img, cv.MORPH_OPEN, kernel) # 图像，操作类型，核函数

cv.imshow('Original',img)
cv.imshow('Open',cvopen)
cv.waitKey(0)
cv.destroyAllWindows()



# 2.闭运算
img = cv.imread('words2.jpeg', 0)
# 定义核函数
kernel = np.ones((5, 5),np.uint8) #核结构越大，填充的孔洞越大

cvclose = cv.morphologyEx(img, cv.MORPH_CLOSE, kernel) # 图像，操作类型，核函数

cv.imshow('Original',img)
cv.imshow('Close',cvclose)
cv.waitKey(0)
cv.destroyAllWindows()